
package com.rs.config;


import com.rs.cache.QueueName;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * rabbit初始化配置
 *
 * @author zhouwz
 */
@Configuration
public class RabbitConfig {

    /**
     * 初始点位指令队列
     *
     * @return 点位队列
     */
    @Bean
    public Queue initSendListPathQueue() {
        return new Queue(QueueName.SEND_LIST_PATH_QUEUE);
    }


    /**
     * 初始探测队列
     *
     * @return 初始探测队列
     */
    @Bean
    public Queue initDetectionQueue() {
        return new Queue(QueueName.DETECTION_QUEUE);
    }

    /**
     * 初始任务指令队列
     *
     * @return 指令队列
     */
    @Bean
    public Queue initSendCommandQueue() {
        return new Queue(QueueName.SEND_COMMAND_SIMULATOR);
    }

    /**
     * 初始接收指令队列
     */
    @Bean
    public Queue initReceiveCommandQueue() {
        return new Queue(QueueName.RECEIVE_COMMAND_QUEUE);
    }

    /**
     * 初始化 主动上报状态 队列
     */
    @Bean
    public Queue initReceiveStatusQueue() {
        return new Queue(QueueName.UPLOAD_DEVICE_STATUS_QUEUE);
    }

    /**
     * 初始化主动上报地码队列
     *
     * @return 上报地码队列
     */
    @Bean
    public Queue initUploadDeviceNodeQueue() {
        return new Queue(QueueName.UPLOAD_DEVICE_NODE_QUEUE);
    }

    /**
     * 初始化 取消任务 队列
     *
     * @return 取消任务 队列
     */
    @Bean
    public Queue initCancelTaskQueue() {
        return new Queue(QueueName.CANCEL_TASK_QUEUE);
    }
}